<%--
 시스템명     : SKT OMP
 업 무 명       : <<업무명>>
 프로그램명 : <<프로그램명>>
 설    명         : <<프로그램 설명>>
 작 성 자       : <<홍길동>>
 작 성 일       : 2009. 5. 8.
 수 정 일       : 
 수정내역     : 
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/css/operator.css" />
<script type="text/javascript" src="${pageContext.request.contextPath }/js/common/stringUtil.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.3.2.min.js"></script>
<title>i topping operator</title>
<style type="text/css">
	.wrap_change_pw{width: 450px;background:#f8f8f8;height: 270px; position: absolute; border: 9px solid #f3942f;}
	.wrap_change_pw h3{display: none;}
	.wrap_change_pw label{font-weight: bold;}
	.box{position: relative; padding: 18px 0px 0px 30px;width: 390px;}
	.signs{line-height: 18px;color: #FF6000;padding-bottom: 17px;}
	.pw_change{clear: both;}
	.pw_change dt{float: left;width: 120px;text-align: left;line-height: 23px;}
	.pw_change dd{text-align: left;}
	.pw_change dt,.pw_change dd{height: 25px;margin-bottom: 13px;}
	.conf_msg{font-size: 12px;color:#FF6000;height: 5px;}
	.conf_msg span{font-weight: bold;color:#0066FF;float: left;height: 25px;}
	.write_btn {width:170px; margin: 0 auto;padding-top: 25px;}
	.pw_change input{padding: 3px 4px;font-weight: bold;}
</style>
<script type="text/javascript">

	window.onload   = resizePosition;
	window.onresize = resizePosition;

	$(document).ready(function(){
		$(".wrap_change_pw").hide(); // 비밀변호 변경 안내 레이어 숨김
		
		if( '<%=request.getParameter("resultCd")%>' == "PLEASE_CHANGE_PWD" ){ // 비밀변호 변경 대상자 일때
			$("#conf_id").val('<%=request.getParameter("accessId")%>');
			$(".wrap_change_pw").show(500);
		}else{
			$(".wrap_change_pw").hide();
		}
		
		//비밀번호 변경 안내 숨김
		$(".conf_msg span,.msg_01,.msg_02,.msg_03,.msg_04").hide();

		//비밀번호 변경 확인
		$("#okay").click(function(e){
			
			$(".conf_msg span,.msg_01,.msg_02,.msg_03,.msg_04").hide();

			var result_code = "";
			var pwd 	 = "";
			var now_pw   = "";
			var conf_pw  = "";
			var id  	 = "";
			
			new_pw 	 = $("#new_pw").val();
			now_pw   = $("#now_pw").val();
			conf_pw  = $("#conf_pw").val();
			id 		 = $("#conf_id").val();
			
			result_code = checkPwd( new_pw , id );
			
			if( result_code != "SUCCESS" ){ //유효한 비밀번호가 아닐경우
				//alert("result_code : " + result_code );
				pwdTip(".msg_02"); 
				return;
			}else{
				//alert("new_pw : "+ new_pw + ",conf_pw : " + conf_pw);
				if( new_pw == now_pw ){ 
					pwdTip(".msg_04"); //새비밀번호가 현재 비밀번호와 동일한 경우
					return; 
				}else if( new_pw != conf_pw ){ 
					pwdTip(".msg_03"); //새비밀번호와 새비밀번번호 확인 입력값이 서로 다를 경우
					return;
				}
				
				//모든조건완료시 Ajax submit 
				var param = "";
				param = { "confId" : id , "newPw" : new_pw , "nowPw" : now_pw , "confPw" : conf_pw };
				$.ajax({
					url: "changePasswordAjax.omp",
					type: "post",
					data: param,
					dataType: "json",
					success:function(data){
						var resultCode = data.resultCode;
						if( resultCode == "PWD_NOT_EQUAL" ){
							pwdTip(".msg_01");
							$("#now_pw").val("");
							$("#now_pw").focus();
						}else{
							alert("비밀번호 변경이 완료 되었습니다.");
							$(".wrap_change_pw").hide();
						}
					}
				});
			}
		});
		
		//비밀번호 변경 취소
		$("#cancel").click(function(e){
			$(".wrap_change_pw").hide();
		});

		if('<%=request.getParameter("resultCd")%>' == "ERROR_IP_AUTH"){ // IP 접근 제한된 사용자 
			alert("접속이 제한된 네트워크 경로입니다.\n어드민 관리자에게 문의 바랍니다.");
		}
		
	});
	
	function pwdTip(val1){
		$("#new_pw").val("");
		$("#conf_pw").val("");
		$(".conf_msg span").show();
		$(val1).show();
	}
	
	var access = false; 
	function resizePosition(){
		
		var cw = 0;	//화면 넓이
		var ch = 0;	//화면 높이
		var sw = 0;	//띄울 창의 넓이
		var sh = 0;	//띄울 창의 높이
		var ml = 0;	//가운데 띄우기위한 창의 x위치
		var mt = 0;	//가운데 띄우기위한 창의 y위치
	
		cw = $(document).width();
		ch = $(document).height(); 
		sw = 450;
		sh = 330;
		ml = ( cw - sw ) / 2;
		mt = ( ch - sh ) / 2;
		
		$(".wrap_change_pw").css({ "left" : ml, "top" : mt});
	}//resizePosition
	
	/**
	* 비밀번호 유효성 검증.
	*
	* param val1 : 비밀번호
	* param val2 : 아이디
	*
	* @return code 
	* SUCCESS     : 이상 없음.
	* ERROR_PW_01 : 비밀번호 내에 사용자 아이디 포함.
	* ERROR_PW_02 : 한글 사용.
	* ERROR_PW_03 : 숫자만 사용.
	* ERROR_PW_04 : 영문만 사용.
	* ERROR_PW_05 : 공백 사용
	* ERROR_PW_06 : 숫자, 영문대소문자, 특수문자 이외의 문자 사용
	* ERROR_PW_07 : 특수 문자만 사용.
	* ERROR_PW_08 : 비밀번호 내에 사용자 아이디 3자이상 포함.
	* ERROR_PW_09 : 동일 문자/숫자 연속3번 사용.
	* ERROR_PW_10 : 12자리 이상 만 사용가능.
	* ERROR_PW_11 : 특수문자 미포함.
	* ERROR_PW_12 : 특수 문자, 숫자만 사용, 영문 미 포함.
	* ERROR_PW_13 : 특수 문자, 영문만 사용, 숫자 미 포함.
	*/
	function checkPwd(val1,val2){
		
		var pwd = ""; 
		var id  = "";
		var result_code = "";
		pwd = val1;
		id  = val2;

		if(pwd != ""){
			if(checkSpecialRemove(pwd) == false){
				return false;
			}
		}
		
		/*ERROR_PW_01 START*/
		var length_1 = 0;
		var pwdSplit = "";
		length_1 = pwd.length;
		pwdSplit = pwd.split(id); 
		/*ERROR_PW_01 END*/
		
		/*ERROR_PW_02 ~ 07 START*/
		var regExp = /[^a-z0-9A-Z!@#$%^&*()~`+=\-_\\\|\[\{\]\}\;\:\"\'<>\,\.?/]+/g;  //전체
		var regExp1 = /[ㄱ-힣]+/g; //한글
		var regExp2 =  /[a-zA-Z]/; //영문 대소문자
		var regExp3 =  /^\d+$/; //숫자
		var regExp4 = /\s/; //공백
		var regExp6 = /[`~!@#$%^&*(){}<>+=\-_\|\[\]\;\:\,\.?"']/gi; //특수문자
		var regExp7 = /[a-zA-Z0-9]+/g; 
		var regExp8 = /[0-9]+/g;
		/*ERROR_PW_02 ~ 07 END*/
		if( pwdSplit.length != 1 ){
			return "ERROR_PW_01"; //비밀번호 내에 사용자 아이디 포함.
		}
		if( regExp1.test(pwd) ){
			return "ERROR_PW_02"; //한글 사용
		}
		if( regExp3.test(pwd) ){
			return "ERROR_PW_03"; //숫자만 사용
		}
		if( isMix(pwd) == "1" ){
			return "ERROR_PW_04"; //영문만 포함
		}
		if( regExp4.test(pwd) ){
			return "ERROR_PW_05"; //공백 사용
		}
		if( regExp.test(pwd) ){
			return "ERROR_PW_06"; //숫자, 영문대소문자, 특수문자 이외의 문자 사용
		}
		if( regExp6.test(pwd) ){ //특수문자 포함
			if( isMix(pwd) == "10" ){
				return "ERROR_PW_12"; //특수 문자, 숫자만 사용
			}
			if( isMix(pwd) == "9" ){
				return "ERROR_PW_13"; //특수 문자, 영문만 사용
			}
		}else{ //특수문자 미포함
			return "ERROR_PW_11";
		}
		/*ERROR_PW_08 START*/
		var startVal = 0; 
		var endVal 	 = 3;
		for( k = 0; k < id.length - 2; k++){
			var checkIdTemp = id.substring(startVal, endVal);
			startVal++;
			endVal++;
			if( pwd.indexOf(checkIdTemp) >= 0 ){
				return "ERROR_PW_08"; //비밀번호에 사용자 ID가 3자 이상 포함
			}
		}
		/*ERROR_PW_08 END*/
		
		/*ERROR_PW_09 START*/
		if( pwd.length > 2 ){ //3자리 이상인 경우 체크 동일 문자/숫자 연속3번
			var temp0 = "";
	        var temp1 = "";
	        var temp2 = "";
			for( p = 0; p < pwd.length - 2; p++ ){
				temp0 = pwd.charAt( p );
	            temp1 = pwd.charAt( p + 1 );
	            temp2 = pwd.charAt( p + 2 );

	            if( temp0 == temp1 && temp1 == temp2 ){
		        	return "ERROR_PW_09"; //3자리 이상인 경우 체크 동일 문자/숫자 연속3번
	            }
			}
		}
		/*ERROR_PW_09 END*/
		/*ERROR_PW_10 END*/
		if( pwd.length < 12 ){ //12자리 이상 패스워드만 사용가능.
			return "ERROR_PW_10"; 
		}
		/*ERROR_PW_10 END*/
		
		return "SUCCESS";
	}
	
	/**
	 * - 영문 / 유니코드 혼용, 1, 2, 4, 8[특문]만 단일 코드 임
	 * 1: 영문 , 2: 숫자 , 3:영문+숫자, 4:한글유니, 5:영문+한글유니, 6:한글유니+숫자, 7: 영문+숫자+한글유니, 8:특문
	 * 9: 영문+특문, 10:숫자+특문, 11:영문+숫자+특문, 12:한글유니+특문, 13:영문+한글+특문, 14:숫자+한글+특문
	 * 15: 영문+숫자+한글유니+특문
	 */
	function isMix(str){
		if(str == null || str == "undefined"){
			return false;
		}
		var ret = 0;
		var type = str.checkValue().toString();
		if(false)alert("객체 타입 : "+typeof(type));
		
		// 대문자 또는 소문자
		if(type.indexOf(_VAL_UPPERCASE) != -1 || type.indexOf(_VAL_LOWERCASE) != -1){
			ret = 1;
		}
		// 숫자
		if(type.indexOf(_VAL_NUM) != -1){
			ret += 2;
		}
		// 한글 유니코드
		if(type.indexOf(_VAL_KOR) != -1){
			ret += 4;
		}
		// 한글 유니코드를 제외한 나머지 코드
		if(type.indexOf(_VAL_ETC) != -1){
			ret += 8;
		}
		return ret;
	}//// isMix
	
	/**
	 * @desc : 문자열 타입 확인
	*/
	var _VAL_NULL 		= "900";	//NULL
	var _VAL_NUM 		= "901";	//NUMBER
	var _VAL_UPPERCASE 	= "902";	//영문 대문자
	var _VAL_LOWERCASE 	= "903";	//영문 소문자
	var _VAL_KOR 		= "904";	//한글
	var _VAL_ETC 		= "999";	//기타[특문 ... 등등]
	String.prototype.checkValue = function() {
		var str = this;
		var Msg = "";
		var returnVal = new Array();
		
		if(str==''||str==null||str=="undefined") {
			Msg = "없음";
			returnVal[returnVal.length] = _VAL_NULL;
		}else{
			var start = 0;
			var end = 0;
			for(i=0; i<str.length; i++) {
			
				start = returnVal.length;
				
				if(str.charCodeAt(i) >= 48 && str.charCodeAt(i) <= 57) {
					Msg = "숫자";
					returnVal[returnVal.length] = _VAL_NUM;
				}	
				if(str.charCodeAt(i) >=65 && str.charCodeAt(i) <= 90) {
					Msg = "대문자";
					returnVal[returnVal.length] = _VAL_UPPERCASE;
				}
				
				if(str.charCodeAt(i) >= 97 && str.charCodeAt(i) <= 122) {
					Msg = "소문자";
					returnVal[returnVal.length] = _VAL_LOWERCASE;
				}
				if((str.charCodeAt(i) >= 0x3130 && str.charCodeAt(i) <= 0x318F) || (str.charCodeAt(i) >= 0xAC00 && str.charCodeAt(i) <= 0xD7A3)) {
					Msg = "한글";
					returnVal[returnVal.length] = _VAL_KOR;
				}
				
				end = returnVal.length;
				if(start == end){
					Msg = "기타";
					returnVal[returnVal.length] = _VAL_ETC;
				}
			}
		}
		return returnVal;
	}///// END String.prototype.checkValue
	
</script>
</head>
<body class="login">
<%
String resultCd = request.getParameter("resultCd");
String msg      = ""; 
if(resultCd!=null && resultCd.length()>0){
    if("ERROR".equals(resultCd)){
        msg="존재하지 않는 아이디 이거나 패스워드가 맞지 않습니다.<br> 확인 하시고 다시 로그인 해주세요";
    }
    if("ERROR_AUTH".equals(resultCd)){
        msg="아무런 페이지 권한이 없는 아이디 입니다.<br>Admin 권한 관리자에게 권한 설정을 문의하세요";
    }
    if("ERROR_IP_AUTH".equals(resultCd)){
        msg="접속이 제한된 네트워크 경로입니다.<br>어드민 관리자에게 문의바랍니다.";
    }
    if("PLEASE_CHANGE_PWD".equals(resultCd)){ //비밀번호 재설정 해당 사용자
        msg=""; //귀하는 비밀 번호 변경 필요 대상자 입니다.
    }
    if("ERROR_IDMS".equals(resultCd)){ //idms연동 실패
        msg=request.getParameter("idmsMsg"); //
    }
}
%>
 
<!-- 
<s:form name="frm" namespace="/adminMember" method="post" action="adminLoginExcute" >
  -->

<c:set var="servPort" value=""/>
<c:set var="servName" value="<%=request.getServerName()%>"/>

<!-- 
이전 : ${servPort},${servName}
 -->
<%
	if( request.getServerName().equals("sadmin.itopping.co.kr")) {
%>
<!--
<c:set var="servPort" value=":443"/> 
이후 : ${servPort},${servName}
 -->	
<%		
	}
%>

<form name="frm" method="post" action="http://<%=request.getServerName()%>${servPort}${pageContext.request.contextPath }/login/adminLoginExcute.do" >
<s:hidden name="loginSuccessMoveUrl" />
<s:hidden name="defaultTopMenuCode" />
<s:hidden name="defaultLeftMenuCode"/>
	<div class="container_login">
		<h1 class="title"><img src="${pageContext.request.contextPath }/images/img_admin.gif" alt="admin" /></h1>
		<h2 class="stitle"><img src="${pageContext.request.contextPath }/images/img_itopping.gif" alt="i topping 관리자 시스템" /></h2>

		<h3 class="stxt"><img src="${pageContext.request.contextPath }/images/txt_itopping_info.gif" alt="이곳은 i topping.co.kr 운영자를 위한 사이트 입니다.i topping.co.kr 관리자분만 로그인을 하여 주십시오." /></h3>
		<div class="login_area">
			<ul class="data_input">
<!--				<li><input name="id" type="text" /></li>d-->
<!--				<li><input name="password" type="password" onkeydown="javascript: if (event.keyCode == 13) {frm.submit();}" /></li>-->
				<li><input type="text" name="id" value="7"></li>
				<li><input type="password" name="password" value="123" onkeydown="javascript: if (event.keyCode == 13) {frm.submit();}"></li>
			</ul> 
			<p class="btn_login"> <img src="${pageContext.request.contextPath }/images/btn_login.gif" alt="login" onClick="javascript:frm.submit();"/> </p>
		</div>
		<%=msg %>
		<p class="copyright"><img src="${pageContext.request.contextPath }/images/copyright.gif" alt="" /></p>

	</div> 
</form>
<!-- 	
</s:form>
 -->	
<script type="text/javascript">
	//document.getElementById(".data_input textfield").focus();
	$(".data_input textfield").focus();
</script>
</body>
</html>